home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d7 / com_moni.arc / X00.DOC < prev    next >
Text File  |  1988-07-25  |  25KB  |  574 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.                         X.00 Low Level Communications Driver
  17.  
  18.                         X.00 Copyright (c) 1987 by Raymond L. Gwinn
  19.                                  All rights reserved
  20.  
  21.           You  are   granted  a  conditional  license  to  use  X00.SYS  in
  22.           conjunction with the Opus Computer-Based Conversation System,  by
  23.           Wynn Wagner III.  The user of X00.SYS must meet the conditions of
  24.           both the legitimate use of Opus  and the  intended legitimate use
  25.           of Opus.   Further,  the author  reserves the right to revoke the
  26.           license and/or prohibit the use  of  X00.SYS  by  anyone  for any
  27.           reason at any time.
  28.  
  29.           The latest  version of X00.SYS is available for down-loading from
  30.           The Renex BBS (FidoNet 109/639), 703-494-8331 or 703-690-7950.
  31.  
  32.           Unlike most software developers,  I  make  Beta/test  versions of
  33.           X00.SYS readily  available.  This has caused some confusion among
  34.           various users.  That is, they are using beta versions  of X00.SYS
  35.           and  think  they  are  using  a  fully tested (if there is such a
  36.           thing) versions.  Starting with  version  1.02  of  X00.SYS  I am
  37.           going to  use the following method in numbering the versions.  If
  38.           the version number ends  with an  odd number,  then it  is a beta
  39.           version.   If it  ends with  an even  number, then it is a tested
  40.           version  that  is  (relatively)  safe  for  general  use.   Then,
  41.           versions 1.01,  2.15 and  1.07 would  be beta versions.  Versions
  42.           1.00, 1.02, 2.00 and 2.14 would not be  beta versions.   The beta
  43.           versions  will  always  have  (and  always have had) a lower case
  44.           letter appended to the version number.  For example, 1.01f is one
  45.           way that  you will  see beta  versions identified.  If you find a
  46.           problem in a beta/test version, let  me know  about it  by direct
  47.           mail.
  48.  
  49.           X00.SYS comes  with no  guarantees or warranties.  Use it at your
  50.           own risk.
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.           X00.SYS is provided to  enable  Opus  to  work  under  the multi-
  59.           tasking system  MultiLink (by  Software Link).   X00.SYS does not
  60.           contain any special code to  accommodate  MultiLink.    Thus, its
  61.           FOSSIL functions  should work  on any  IBM PC/CLONE.   If zero is
  62.           specified as the number of  COM  ports,  X00.SYS  basic functions
  63.           should work on any MS-DOS system.
  64.  
  65.           X00.SYS provides  enhanced/extended support of INT 14H functions.
  66.           Documentation of the enhanced/extended functions can  be found in
  67.           the included file FOSSIL.DOC by Vincent E. Perriello.
  68.  
  69.           DoubleDOS.   Since writing  X.00 I  have learned  more about DDos
  70.           than I ever wanted to know.  A  few rules  for DDos  users that I
  71.           know are:  1 -  Do not  assign the comm ports in DDCONFIG.SYS, 2-
  72.           Be sure to execute  CAPTURE after  you execute  DOUBLEDO.   To be
  73.           safe,  execute  CAPTURE  in  both  partitions.    3 - If you have
  74.           problems with your clock, try the Defer option.  4  - Be  sure to
  75.           replace  ANSI.SYS  with  DBLDANSI.SYS.    For  some reason, I had
  76.           problems if the TOP partition was  not  delayed.    That  is, the
  77.           BOTTOM partition must initialize before the TOP partition does.
  78.  
  79.           The  semi-formal  syntax  for  the  statement to be placed in the
  80.           CONFIG.SYS file is as follows:
  81.  
  82.           DEVICE=X00.SYS <options>
  83.  
  84.           <options> ::=  <none> |  <eliminate> <defer>  <port specs> <baud>
  85.           <size>
  86.  
  87.           <none> ::=
  88.  
  89.           <eliminate> ::= E{LIMINATE}
  90.  
  91.           <defer> ::= D{EFER}
  92.  
  93.           <baud>  ::= B,<port number>,<baud rate>
  94.  
  95.           <size>  ::= R=<receive buffer size> T=<transmit buffer size>
  96.  
  97.           <receive buffer size> ::= <buffer size>
  98.  
  99.           <transmit buffer size> ::= <buffer size>
  100.  
  101.           <buffer size> ::= 256 | 512 | 1024 | 2048 | 4096 | 8192 | 16384 |
  102.           32768
  103.  
  104.           <baud rate> ::= 300 | 1200 | 2400 | 4800 | 9600 | 19200
  105.  
  106.           <port spec> ::= <number of ports> | <hardware port assignment>
  107.  
  108.           <number of ports> ::= 0 | 1 | 2 | 3 | 4
  109.  
  110.           <hardware port assignment> ::= <port number> = <assignment>
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.           <port number> ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7
  118.  
  119.           <assignment> ::= <logical> | <absolute>
  120.  
  121.           <logical> ::= <comn> {, <irqn>}
  122.  
  123.           <comn> ::= <COM1> | <COM2> | <COM3> | <COM4>
  124.  
  125.           <irqn> ::= <IRQ0> | <IRQ1> ........ <IRQ15>
  126.  
  127.           <absolute> ::= <hex port address> , <irqn>
  128.  
  129.           <hex port address> ::= Any hex number 0 through 0FFFF.  The first
  130.                                  character must be 0 through 9.
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139.           The simplest statement for the CONFIG.SYS file is as follows:
  140.  
  141.                DEVICE=X00.SYS
  142.  
  143.           This statement will be all that is required on the  vast majority
  144.           of Opus  systems.  It says that you wish to support one comm port
  145.           and comm port is as specified in the Opus CTL (really PRM) file.
  146.  
  147.           DEFER - DO NOT USE THIS OPTION UNLESS YOU UNDERSTAND  ITS PURPOSE
  148.           AND  YOU  NEED  TO  USE  IT.    IF YOUR SYSTEM WORKS WITHOUT THIS
  149.           OPTION, THEN DO NOT USE IT.   If  you needed  to use  this option
  150.           with past  versions of  X00.SYS then try this version without it.
  151.           Do not automatically assume  that you  still need  it.   At least
  152.           half of  the reported  problems with  X00 have  resulted from the
  153.           casual use of this option.  This option specifies that X00.SYS is
  154.           not to  take any  DOS interrupt  vectors during the boot process.
  155.           If DEFER is specified then  CAPTURE  must  be  executed  prior to
  156.           executing  OPUS.    Your  AUTOEXEC.BAT  file is the best place to
  157.           execute CAPTURE.   With  MultiLink,  CAPTURE  should  be executed
  158.           before multi-tasking  is started.   However,  as with  99% of all
  159.           systems, MultiLink systems  should  work  correctly  (and better)
  160.           without  the  DEFER  option.    Unless you are using some strange
  161.           software, you should not need to use the  DEFER option.   If your
  162.           system does  not boot  correctly with  X00.SYS then try the DEFER
  163.           option followed by CAPTURE  in your  AUTOEXEC.BAT file.   X00.SYS
  164.           only checks for the D in DEFER.
  165.  
  166.           ELIMINATE  will  eliminate  the  5 second commercial at boot time
  167.           (which is a direct screen memory write).
  168.  
  169.           Number of ports.  When  you  wish  to  use  the  default IBM/Opus
  170.           communication port  addresses and IRQs, you should simply specify
  171.           the number of ports that you wish to support (the  default is 1).
  172.           Although X00 V1.00 and up can support up to 8 ports, you can only
  173.           specify 0 through 4 supported ports.  The reason is that there is
  174.           only  4  defined  ports  (COM1,  COM2,  COM3,  COM4) that X00 can
  175.           default to.  If you use the absolute method (described later) you
  176.           can specify  up to 8 devices.  X00 assumes that COM1 and COM2 are
  177.           addressed as originally defined by  IBM.    The  default hardware
  178.           characteristics of  COM3 and COM4 are 03E8H, IRQ4 and 02E8H, IRQ3
  179.           respectively.  This seems to be  a defacto  standard, although no
  180.           real standard exists that I know of.
  181.  
  182.           With the  software that uses FOSSIL drivers today, 2 ports is all
  183.           that can reasonably be used.  However, X00 allows you to make one
  184.           or both of those ports COM3 and/or COM4 or non-standard hardware.
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.           The T  and R options (or help, the sky is falling).  Trying to be
  193.           all comm drivers to  all protocols  on all  computers (especially
  194.           betas) is not easy.  The T and R options allow you to specify the
  195.           size of the transmit and receive buffers.   The buffer  size must
  196.           be a power of 2.  The sum total, in bytes, of all buffers can not
  197.           exceed 48k bytes.  For example, DEVICE=X00.SYS T=32768 R=16384 is
  198.           valid (only one port).  However, DEVICE=X00.SYS 2 T=16384 R=16384
  199.           is not valid (2 ports each with a 16k transmit and receive buffer
  200.           = 32k  per port  or 64k).  In the second example the total buffer
  201.           size  exceeds  the  maximum  of  48k.     X00   SHOULD  (but  not
  202.           necessarily) beep  the bell  and display an error message at boot
  203.           time if you attempt to define too much  buffer space.   Also with
  204.           this option, the default buffer size has been increased to 4k (it
  205.           was 1k) for both the transmit and receive buffers.
  206.  
  207.           The <baud> option allows you  to  lock  the  baud  rate  from the
  208.           computer to the modem.  When this option is specified for a port,
  209.           the baud rate from the computer to the modem will remain constant
  210.           regardless  of  what  the  application  program  (such  as  Opus)
  211.           requests the baud rate to be.  This option is  to accommodate the
  212.           higher  speed  modems  like  the  Telebit TrailBlazer and USR HST
  213.           modems.  When this option is used, RTS/CTS handshaking is implied
  214.           (forced)  even  if  the  application  program  has  not requested
  215.           RTC/CTS handshaking.  Both Telebit  and  USR  recommend  in their
  216.           manuals that  the computer  to modem  baud rate  be constant.  My
  217.           personal experience has show that both modem types operate better
  218.           when the  computer to  modem baud  rate is faster than the actual
  219.           phone line baud rate.
  220.  
  221.           You may specify 0 as the number of  FOSSIL comm  ports.   In this
  222.           case,  all  FOSSIL  code  is  released  to DOS during booting and
  223.           X00.SYS will occupy only  about 1K  of memory.   The  0 comm port
  224.           option is  primarily for  non IBM systems (such as DEC and Tandy)
  225.           that must use other  FOSSIL drivers.  These systems  can then use
  226.           OUTER without  carrying the overhead of the unusable FOSSIL code.
  227.           If you  are using  Opus and  you specify  0 FOSSIL  comm ports to
  228.           X00.SYS, you  must have  another FOSSIL  driver, such as OPUSCOMM
  229.           loaded into memory for Opus to use.
  230.  
  231.           The required communications  buffers  are  allocated dynamically.
  232.           All code  used for  initialization is  overlaid by the buffers or
  233.           released to DOS by X00 when  it completes  initialization at boot
  234.           time.
  235.  
  236.           IRQs.  The AT's additional 8 IRQs are supported.  X00 can support
  237.           multiple ports on a  single interrupt.   When  multiple ports are
  238.           assigned to  a single  interrupt, X00 will poll each of the ports
  239.           to find the interrupting device(s).
  240.  
  241.           If  you  plan  to   reassign  the   port(s)  to   a  non-standard
  242.           configuration or  use some  strange hardware, it is best to think
  243.           in port numbers instead of COMn.   The  Opus documentation refers
  244.           to COM1  and COM2.  However, when Opus communicates with a FOSSIL
  245.  
  246.  
  247.  
  248.  
  249.  
  250.           driver, it calls COM1  device/port 0  and COM2  is device/port 1.
  251.           So if  you want  to keep your head in order, you can edit the CTL
  252.           files and (except where you can't) change all occurrences of COM1
  253.           to PORT 0 and COM2 to PORT 1.
  254.  
  255.           Some examples of CONFIG.SYS statements are as follows:
  256.  
  257.           DEVICE = X00.SYS E
  258.           Which means one port, no commercial.
  259.  
  260.           DEVICE = X00.SYS 2
  261.           Allocate  space  for  buffers  (at  the  default  size of 4k) and
  262.           provide support for COM1 and COM2.
  263.  
  264.           DEVICE = X00.SYS T=1024 R=4096
  265.           One port supported, the transmit  buffer  is  to  be  1k  and the
  266.           receive buffer is to be 4k.
  267.  
  268.           DEVICE = X00.SYS 2 B,1,19200
  269.           Same as  the above except COM2 will always operate at 19200 baud.
  270.           COM1 will  operate  at  the  baud  rate  set  by  the application
  271.           program.
  272.  
  273.           DEVICE = X00.SYS 2 B,0,19200
  274.           Same  as  the  above  except  COM1  is fixed at 19200.  COM2 will
  275.           operate at the baud rate set by the application program.
  276.  
  277.           DEVICE = X00.SYS 2 B,0,19200 B,1,9600
  278.           In this example the baud rate  for COM1  is locked  at 19200 baud
  279.           and COM2 is locked at 9600 baud.
  280.  
  281.           DEVICE = X00.SYS 0=COM3
  282.           One port  supported but,  use COM3  on IRQ4  (the default).  Opus
  283.           will think (and must be told in the  CTL file)  that it  is using
  284.           COM1 in this case.
  285.  
  286.           DEVICE = X00.SYS 0=COM3,IRQ4
  287.           Exactly the same as above.
  288.  
  289.           DEVICE = X00.SYS 0=COM3,4
  290.           Exactly the same as above.
  291.  
  292.           DEVICE = X00.SYS 0=COM3,IRQ1
  293.           Same as above except IRQ1 is to be used.
  294.  
  295.           DEVICE = X00.SYS 0=COM4 1=COM3
  296.           Two ports  supported, Opus  thinks COM4  is COM1 and that COM3 is
  297.           COM2.  Use the default IRQs for COM4 and COM3.
  298.  
  299.           Now some absolute assignment examples.   When hex  port addresses
  300.           are used, the IRQ must be specified.
  301.  
  302.           DEVICE = X00.SYS 0=0FE8,IRQ4
  303.           Support  one  serial  (8250)  device  with a base port address of
  304.  
  305.  
  306.  
  307.  
  308.  
  309.           0FE8H and use IRQ4
  310.  
  311.           DEVICE = X00.SYS 0=3F8,IRQ4 1=2F8,IRQ4
  312.           Support 2 serial devices at the given hex  port address  and both
  313.           will interrupt on IRQ4.
  314.  
  315.           etc, etc, etc.
  316.  
  317.           If you are not confused by now, I am, so I'm giving up.
  318.  
  319.  
  320.  
  321.  
  322.  
  323.  
  324.           REVISION HISTORY
  325.  
  326.           V0.01
  327.           A problem  with transmit  interrupts, unique to some systems, was
  328.           corrected.  The supporting program CAPTURE.EXE was added.
  329.  
  330.           V0.02
  331.           The  previously  unsupported  carrier  detect  watchdog  code was
  332.           debugged.    A  new  supporting  program, WATCHCD.COM, was added.
  333.           CAPTURE.EXE was changed to a COM program, now CAPTURE.COM
  334.  
  335.           V0.03
  336.           Added  2  additional  functions  to  maintain  compatibility with
  337.           OPUSCOMM.
  338.  
  339.           V0.04
  340.           This version  was kind of rushed out because I found a dumb error
  341.           and corrected it.   New FOSSIL  functions, BOOT,  TIMER TICK, and
  342.           WATCHDOG were  added.  The new FOSSIL function were not tested to
  343.           my satisfaction  however, the  corrected problem  warranted a new
  344.           version  now.    If  Opus  said  "OPUS!COMM  not responding" with
  345.           X00.SYS loaded, try again.
  346.  
  347.           V0.05
  348.           This revision corrected  some  problems  and  represents  a major
  349.           restructuring of  the code.  The 0 comm port, DEFER and ELIMINATE
  350.           options were added.
  351.  
  352.           V0.06
  353.           Added one line of  code  to  correct  a  problem  in  one  of the
  354.           enhanced  INT  14H  functions.    Function 8 incorrectly returned
  355.           prior to the transmit buffer being empty.
  356.  
  357.           V0.07
  358.           Henk Weavers (500/1) reported a problem  with FOSSIL  function 13
  359.           which this  version corrects.  This is probably the one that gave
  360.           SEAdog problems.  I have not  been able  to get  a SEAdog version
  361.           that uses  FOSSIL drivers,  so I am not able to test X00.SYS with
  362.           SEAdog.
  363.  
  364.           V0.08
  365.           This version corrects no  problems (that  I know  of).   I did do
  366.           some re-structuring  and general cleanup.  I may have unknowingly
  367.           corrected problem(s).  However, I now have SEAdog V4.0 running on
  368.           my  system  (109/639)  under  MultiLink  (V4.0  also)  using this
  369.           version of X00.SYS.  I have been running  SEAdog in  2 partitions
  370.           for 2  days and  all (including  mail events)  seems to  be as it
  371.           should  be.    I  have  also  crashed  mail  all  over  the world
  372.           (literally) and entered messages in one partition while the other
  373.           was sending mail.  You will most likely have to use the *x option
  374.           in your  BBS statement in CONFIG.DOG.  Read the SEAdog manual for
  375.           *x information.  I  will document  and make  available my control
  376.           files when time permits.
  377.  
  378.  
  379.  
  380.  
  381.  
  382.  
  383.           V0.09n
  384.           This version was never released for general use.  All versions of
  385.           0.09n were/are Beta test versions for the generic  (absolute port
  386.           assignments) features.   These features have not been widely used
  387.           and probably still have problems.  If you are the type that likes
  388.           some excitement in your life, try this:
  389.                   DEVICE=X00.SYS 0=COM2
  390.           or if you are running 2 ports
  391.                   DEVICE=X00.SYS 0=COM2 1=COM1
  392.           These statements effectively reverse the normal Opus assignments.
  393.           Don't forget to consider the  effect  on  your  CTTY,  IBMAUX and
  394.           WATCHDOG statements.   If  you doubt that Murphy lives, reversing
  395.           the defaults will change your mind.
  396.  
  397.           As a side note,  I used  a ConnectCom  4 from  Software Link (the
  398.           same people  that sell  MultiLink) to do all of my testing of the
  399.           generic functions.  The Software Link  is located  in Atlanta Ga.
  400.           their phone number is 404-998-0700
  401.  
  402.           V1.00
  403.           I think X00.SYS is now solid enough to be called version one.  At
  404.           least on my system, the glitches, crashes, strange conditions and
  405.           problems have been corrected or explained as not an X00 problem.
  406.  
  407.           The major enhancements in V1.00 is the addition of the ability to
  408.           specify comm ports in hardware as well as conventional terms.
  409.  
  410.           On the minor side,  the  code  has  been  streamlined  for faster
  411.           execution in  anticipation of the faster modems that are starting
  412.           to appear in the net.    Also,  some  problems  in  the interrupt
  413.           service routines have been corrected.  These problems would cause
  414.           lock ups under certain conditions.
  415.  
  416.           NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE
  417.           The command  line to  invoke WATCHCD  V1.00 is  changed with this
  418.           release of X00.SYS.  Read the WATCHCD docs.
  419.  
  420.  
  421.  
  422.  
  423.  
  424.  
  425.  
  426.           V1.02
  427.           Added some  wierd things the keep SEAlink from getting locked up.
  428.           If you have seen "too many errors" or otherwise had problems with
  429.           SEAlink transfers,  this version of X00.SYS may clear it up.  The
  430.           problem really showed up when using  high speed  modems with high
  431.           speed computers.
  432.  
  433.           Added the locked baud rate option.
  434.  
  435.           Cleaned  up  some  problems  in  the parsing of the options line.
  436.           Previous versions did not like it  if you  tried to  specify more
  437.           than 2 ports.
  438.  
  439.           X00 will now leave DTR alone when a program exits.
  440.  
  441.           V1.04
  442.           This is  fix up  version.  No new features have been added.  This
  443.           version simply corrects problems introduced with "new features"
  444.           of previous versions.
  445.  
  446.           All additions/changes to help  some SEAlink  implementations have
  447.           been  removed  from  X00.    They caused as many problems as they
  448.           fixed.  Don't  forget  that  you  can  turn  X00's  FOSSIL (comm)
  449.           functions on and off by using CAPTURE ON and CAPTURE OFF.
  450.  
  451.           Corrected a problem in the modem handshaking that occurred when a
  452.           fixed computer-to-modem baud  rate  was  specified.    Due  to an
  453.           incorrect assumption  on my  part the RTS/CTS handshaking was not
  454.           always forced on (as it should have been).
  455.  
  456.           Corrected a problem of slow output when a disconnect occurred.
  457.  
  458.           Increased the transmit buffer size from 512 bytes  to 1024 bytes.
  459.           The  increased  buffer  size  hides  an  error  in  some windowed
  460.           protocol implementations.
  461.  
  462.  
  463.  
  464.  
  465.  
  466.  
  467.  
  468.           V1.06
  469.           The DEFER option now (again) implies ELIMINATE.
  470.  
  471.           Added an internal stack for the driver initialization call.  This
  472.           is necessary for DOS V2.0 and V2.1.
  473.  
  474.           Added support for Opus definitions of 19200 and 38400 baud.
  475.  
  476.           Added an internal stack for communications interrupt processing.
  477.  
  478.           Corrected  a  problem  with  DTR being turned on incorrectly when
  479.           Opus is invoked from the keyboard.
  480.  
  481.           Corrected a problem in command line parsing with DOS V2.xx.
  482.  
  483.           Added the ability to specify the size of the transmit and receive
  484.           buffers.  See the specs and examples above.
  485.  
  486.           Default buffer size was changed to 4k bytes.
  487.  
  488.           X00 now  beeps the  bell if  it displays an error message at boot
  489.           time.
  490.  
  491.           Added some defensive  code  to  detect  the  loss  of transmitter
  492.           interrupts.    This  problem  showed  up a lot on systems running
  493.           DDos.
  494.  
  495.           V1.08
  496.           Corrected a problem with the timer tick processing when the DEFER
  497.           was specified.   Added  functions to  meet draft  4 of the FOSSIL
  498.           specification.
  499.  
  500.           Added FOSSIL as  a  driver  name.    Added  all  of  the  draft 4
  501.           specification  changes  except  the  dispatcher functions (7E and
  502.           up).  Inserted code to attempt to fix  a watchdog  problem on the
  503.           386's.
  504.  
  505.           Added  code  to  work  around  a  DDos  bug.  NOTICE - If you use
  506.           CAPTURE or WATCHCD, you  must have  v1.08 or  above to  work with
  507.           this version of X00.
  508.  
  509.           Corrected problems in Status function (27).  
  510.  
  511.           Added Quiet mode call to function 4 (init).
  512.  
  513.           Added bit 3 (enable sending of XON/XOFF) to function 15 (0FH).
  514.  
  515.  
  516.  
  517.  
  518.  
  519.  
  520.  
  521.           Corrected  a  problem  in  the  RTS/CTS  flow control.  On slower
  522.           computers  RTS  may  not  have  been  turned  off   soon  enough.
  523.           Computers running  less that  6 MHz should not lock the baud rate
  524.           any higher than 9600 baud
  525.  
  526.           Function 4 now returns information in BX as specified by  Draft 4
  527.           of the FOSSIL spec.  Prior to 1.07j, it did not.  
  528.  
  529.           Corrected a  problem where X-ON was being sent at random when the
  530.           sending of X-ON and X-OFF is enabled.
  531.  
  532.           Made changes  to  speed  a  few  things  up  a  little.   Changed
  533.           functions 22,  24, 25, and 27.  Parameters that were passed in DS
  534.           are now passed in ES.  If a second parameter  was passed  with DS
  535.           in SI,  it now  must be passed in DI.  See FOSSIL.DOC for the new
  536.           calling sequence for the above listed functions.   This time, the
  537.           FOSSIL specification  is being changed to reflect the new calling
  538.           sequences.
  539.  
  540.           Added code  to  work  around  an  apparent  problem  with SEAdog.
  541.           SEAdog should  work faster  with this  version.   Worked over the
  542.           interrupt service routine.
  543.  
  544.           Corrected a problem in  the hardware  handshaking.   Disabled the
  545.           sending X-OFF.
  546.  
  547.           Corrected a problem with 2000h and 4000h bit returned by function
  548.           three.
  549.  
  550.           X00 will not initialize the baud rate on a function 4 call.  This
  551.           will allow  outside type  functions to  use X00  at the same baud
  552.           rate as set by the program that loaded it.
  553.  
  554.  
  555.           V1.08a  Function 22 (16h) does not work correctly in V1.08.  This
  556.           release corrects the problem.
  557.  
  558.           V1.09a Can  you believe  it, another  beta.  Anyhow, this version
  559.           attempts to  correct  a  problem  that  some  have  reported with
  560.           lockups (mostly with TrailBlazers).
  561.  
  562.           V1.09b  Added  the  best  anti-locking  system  conceived by man.
  563.           This, of course means it will lock up every other time that it is
  564.           called.
  565.  
  566.           ------------------------------
  567.  
  568.           Time  permitting,  I  will  respond  to  messages  pertaining  to
  569.           X00.SYS.  Please do not get upset if I am slow.
  570.  
  571.           Ray Gwinn
  572.  
  573.  
  574.